 precision highp float;
    varying vec2 vUv;
    uniform float uTime;

       //随机函数
    float random (vec2 st) {
        return fract(sin(dot(st.xy,vec2(12.9898,78.233)))*43758.5453123);
    }
    //旋转函数
    vec2 rotate(vec2 uv,float rotation,vec2 mid){
      return vec2(cos(rotation)*(uv.x-mid.x)+sin(rotation)*(uv.y-mid.y)+mid.x,-sin(rotation)*(uv.x-mid.x)+cos(rotation)*(uv.y-mid.y)+mid.y);
    }
    void main() {
    //   gl_FragColor=vec4(vUv,0.0,1.0);

      //利用uv实现渐变效果
    //   float strength=1.0-vUv.x;
    //   gl_FragColor=vec4(strength,strength,strength,1.0);

    //利用取模实现渐变效果
    // float strength=mod(vUv.y*10.0,1.0);
    // gl_FragColor=vec4(strength,strength,strength,1.0);

    //斑马线效果
    // float strength=step(0.5,mod(vUv.y*10.0,1.0));
    // gl_FragColor=vec4(strength,strength,strength,1.0);

    //条纹相加
    // float strength=step(0.8,mod(vUv.x*10.0,1.0))+step(0.8,mod(vUv.y*10.0,1.0));
    // gl_FragColor=vec4(strength,strength,strength,1.0);

    //条纹相减
    // float strength=step(0.8,mod(vUv.x*10.0,1.0))-step(0.8,mod(vUv.y*10.0,1.0));
    // gl_FragColor=vec4(strength,strength,strength,1.0);

    //条纹相乘
    // float strength=step(0.8,mod(vUv.x*10.0,1.0))*step(0.8,mod(vUv.y*10.0,1.0));
    // gl_FragColor=vec4(strength,strength,strength,1.0);

    //条纹相偏移--方块图形
    // float strength=step(0.2,mod(vUv.x*10.0+0.2,1.0))*step(0.2,mod(vUv.y*10.0,1.0));
    // gl_FragColor=vec4(strength,strength,strength,1.0);

     //条纹相乘
    // float barX=step(0.4 , mod(vUv.x * 10.0 , 1.0)) * step(0.8,mod(vUv.y * 10.0 , 1.0));
    // float barY=step(0.4 , mod(vUv.y * 10.0 , 1.0)) * step(0.8,mod(vUv.x * 10.0 , 1.0));
    // float strength=barX+barY;
    //  gl_FragColor=vec4(strength,strength,strength,1.0);
    //  gl_FragColor=vec4(vUv,strength,0);
    //  gl_FragColor=vec4(strength,strength,strength,1.0);
    //  vec3 color = vec3(vUv.x, 0.0, vUv.y);
    // float pattern = step(0.5, mod(vUv.x * 10.0,1.0)) * step(0.5, mod(vUv.y * 10.0, 1.0));
    // gl_FragColor = vec4(color * pattern, 1.0);

    // 14T形
    // float barX=step(0.4 , mod((vUv.x+uTime*0.1) * 10.0 , 1.0)) * step(0.8,mod(vUv.y* 10.0 , 1.0));
    // float barY=step(0.4 , mod(vUv.y * 10.0 , 1.0)) * step(0.8,mod(vUv.x * 10.0 , 1.0));
    // float strength=barX+barY;
    //  gl_FragColor=vec4(strength,strength,strength,1.0);

    // float barX = step(0.5, mod(vUv.x * 10.0, 1.0)) * step(0.5, mod(vUv.y * 10.0, 1.0));
    // float barY = step(0.5, mod(vUv.y * 10.0, 1.0)) * step(0.5, mod(vUv.x * 10.0, 1.0));
    // float strength = barX + barY;
    // gl_FragColor=vec4(vUv,strength,1.0);

    //  gl_FragColor=vec4(strength,strength,strength,1.0);
    // gl_FragColor = vec4(1.0,1.0,strength,1.0); // 使用 UV 和强度生成颜色

    // 16利用绝对值
    // float strength=abs(vUv.x-0.5)+abs(vUv.y-0.5);
    
    // float strength=1.0-max(abs(vUv.x-0.5),abs(vUv.y-0.5));
    //step--回
    //  float strength=step(0.2,max(abs(vUv.x-0.5),abs(vUv.y-0.5)));
      // float strength=1.0-step(0.2,max(abs(vUv.x-0.5),abs(vUv.y-0.5)));
    // gl_FragColor=vec4(strength,strength,strength,1.0);

    //floor向下取整-----取整实现阶段性变化
    // float strength=floor(vUv.x*10.0)/10.0;
    // float strength=floor(vUv.x*10.0)/10.0*floor(vUv.y*10.0)/10.0;
    // gl_FragColor=vec4(strength,strength,strength,1.0);
    //向上取整
    // float strength=ceil(vUv.x*10.0)/10.0*ceil(vUv.y*10.0)/10.0;
    // gl_FragColor=vec4(strength,strength,strength,1.0);


    //通过随机函数实现马赛克效果
    // float rnd = random( vec2(strength) );

    // gl_FragColor = vec4(vec3(rnd),1.0);


    //length 求长度
    // float strength=length(vUv);
    // gl_FragColor=vec4(vec3(strength),1.0);

    //计算两个向量的距离
    // float strength=1.0-distance(vUv,vec2(0.5));
    // gl_FragColor=vec4(vec3(strength),1.0);

    //根据相除，实现星星
    // float strength=0.15/distance(vUv,vec2(0.5))-1.0;
    // gl_FragColor=vec4(vec3(strength),strength);

    //设置vUv水平或者竖直变量---十字交叉星星
    // float strength1=0.15/distance(vec2(vUv.x,(vUv.y-0.5)*5.0+0.5),vec2(0.5))-1.0;
    //  float strength2=0.15/distance(vec2(vUv.y,(vUv.x-0.5)*5.0+0.5),vec2(0.5))-1.0;
    //  float strength=strength1+strength2;
    // gl_FragColor=vec4(strength);

     //设置vUv水平或者竖直变量---十字交叉星星--旋转uv
  
    // vec2 rotateUv=rotate(vUv,-uTime*5.0,vec2(0.5));
    //   float strength1=0.15/distance(vec2(rotateUv.x,(rotateUv.y-0.5)*5.0+0.5),vec2(0.5))-1.0;
    //  float strength2=0.15/distance(vec2(rotateUv.y,(rotateUv.x-0.5)*5.0+0.5),vec2(0.5))-1.0;
    //  float strength=strength1+strength2;
    // gl_FragColor=vec4(strength);
    //绘制圆
    float strength=step(0.25,distance(vUv,vec2(0.5)));
    //绘制圆环
    strength*=(1.0-step(0.35,distance(vUv,vec2(0.5))));
    gl_FragColor=vec4(strength,strength,strength,1.0);
}